﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Web;
using Castle.ActiveRecord;

namespace ServiceGerenciador.Model
{
    [Serializable]
    [ActiveRecord("fornecedores")]
    public class Forne : ActiveRecordBase<Forne>
    {
        //public IList Prod = new ArrayList();
        public Forne()
        {

        }
        [PrimaryKey]
        public int Id { get; set; }
        
        [BelongsTo("idPessoa")]
        public Person Pessoa { get; set; }


        public string Nome
        {
            get
            {
                if (this.Pessoa != null)
                    return this.Pessoa.Nome;
                else
                    return string.Empty;
            }
        }

        public string CPF
        {
            get
            {
                if (this.Pessoa != null)
                    return this.Pessoa.CPF;
                else
                    return string.Empty;
            }
        }

        public static Forne[] Pesquisa(string termo)
        {
            return FindAll().Where((f) => (f.Pessoa.Nome.ToUpper().Contains(termo.ToUpper()))).ToArray();    
        }

        //[HasAndBelongsToMany(typeof(produtos),
        //  Table = "fornecedoresProdutos", ColumnKey = "Id", ColumnRef = "idProduto")]
        //public IList<Prod> prod
        //{
        //    get { return prod; }
        //    set { prod = value; }
        //}
        
        
        //[HasAndBelongsToMany(Table = "produtos", ColumnKey = "Id", ColumnRef = "idProduto", Lazy = true, Cascade = ManyRelationCascadeEnum.AllDeleteOrphan)]
        //public IList<Prod> Prod { get; set; }        
        [HasAndBelongsToMany(Table = "produtos", ColumnKey = "Id", ColumnRef = "idProduto")]
        public IList<Prod> Prod { get; set; }
    }
}